package com.managertrade.dao.mysql.repository;

import com.managertrade.dao.mysql.entity.OkxOrder;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;
import java.util.Optional;

public interface OkxOrderRepository extends JpaRepository<OkxOrder, Long> {

    // 根据用户或交易员唯一标识查询所有订单
    List<OkxOrder> findByUnicode(String unicode);

    // 根据用户唯一标识 + 合约ID 查询
    List<OkxOrder> findByUnicodeAndInstId(String unicode, String instId);

    // 根据 ordId 查询单条订单
    Optional<OkxOrder> findByOrdId(String ordId);

    // 分页查询某用户所有订单
    Page<OkxOrder> findByUnicode(String unicode, Pageable pageable);

    // 查询未完成订单（state != filled）
    List<OkxOrder> findByUnicodeAndStateNot(String unicode, String state);

    //  查询某合约未完成订单
    List<OkxOrder> findByUnicodeAndInstIdAndStateNot(String unicode, String instId, String state);

    //  删除某个用户的全部订单（谨慎）
    void deleteByUnicode(String unicode);
}
